1. Field
The disclosure relates generally to an improved data processing system, and in particular, to streaming media. Still more particularly, the present disclosure relates to a method and apparatus for streaming media on client computer systems.
2. Description of the Related Art
In a progressive Hypertext Transfer Protocol (HTTP) download for a media file, an HTTP server first transmits information for the file followed by the media file data itself. A client stores the data in a file as the file is received, just like any other download. A media player knows how to play the stored media from the transmitted file data.
Progressive downloading is being currently replaced by Hypertext Transfer Protocol Live Streaming (HTTP-LS). In Hypertext Transfer Protocol Live Streaming, a media file is duplicated as a partitioned file divided into equal chunks stored in a separate file. To play a media file, a client device first retrieves a list of the stored chunks making up the media itself. The client player then retrieves the chunks. Pre-partitioning the media file into chunks creates a considerable burden for the server as it partitions the file into chunks and stores the chunks in a memory location, and the server must maintain both a partitioned and un-partitioned copy in memory.
Servers, such as server computer systems and server software systems that can hold state for client and server communication sessions are more expensive than servers that are stateless. Stateless servers can be more easily distributed allowing for better performance and lower costs. Thus, client and server media download sessions that use state in a server to manage the client and server media download sessions require more server processing power that is desired. Further, a client device may be used to identify information for the client device that the server does not have. This information may include a location of the client device and a client device user's orders or commands. It may be expensive to send this information from the client device to the server device. Also, the server would have to have even more state in order to remember this additional client information.
Client devices that are mobile have performance and technical issues when attempting to download large amounts of data needed to retrieve audio video media. For example, it may be impossible for mobile clients to download an entire file through one cell tower or even through one cell phone provider. Also, the server and the network used to transfer the file from the server to the client device may have problems causing a failure or unacceptable delay in transfer of the file to the client device.
Therefore, it would be advantageous to have a method and apparatus that takes into account at least some of the issues discussed above, as well as possibly other issues.